package com.jishuo.nontax.bfc.dao;

import com.jishuo.nontax.bean.vo.CheckDataVO;
import com.jishuo.nontax.bean.vo.NumAmtVO;
import com.jishuo.nontax.bean.vo.PayDivideVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * @author :hanlipeng
 * @description :
 * @create :2022-12-22 11:18:00
 */
@Mapper
public interface DivideMapper {
    /**
     * 查询划解分成分成单据
     *
     * @param dividebillnum 划解分成对象
     * @return
     */
    PayDivideVO findDivideInfo(String dividebillnum);

    /**
     * 划解分成缴费单据信息
     *
     * @param dividebillnum 票据号
     * @return
     */
    PayDivideVO findtBankDivideAffirm(String dividebillnum);

    //ArrayList<SetBankIllegalactivityScaleinfoDetail> findIllScaleSend(@Param("billnum") String billnum, @Param("billno") String billno);

    /**
     * 根据票据号统计划解分成个数
     *
     * @param dividebillnum 票据号
     * @return
     */
    int findDivideCount(String dividebillnum);

    /**
     * 更新划解分成缴费单据信息
     *
     * @param payDivideVO 化解分成对象
     * @return
     */
    int updateDivide(PayDivideVO payDivideVO);

    /**
     * 添加化解分成缴费单据信息
     *
     * @param payDivideVO 化解分成对象
     * @return
     */
    int insertDivide(PayDivideVO payDivideVO);

    int insertDivideNew(PayDivideVO payDivideVO);

    /**
     * 根据sn更新单据状态
     *
     * @param sn        报文标示
     * @param billstate 缴费状态
     * @return
     */
    int updateDivideState(@Param("sn") String sn, @Param("billstate") int billstate);


    /**
     * 添加一个空单据
     *
     * @param payDivideVO 划解分成对象
     * @return
     */
    int insertBlankDivide(PayDivideVO payDivideVO);

    /**
     * 发送时更新messageid
     *
     * @param payDivideVO 划解分成对象
     * @return
     */
    int updateMsgDivide(PayDivideVO payDivideVO);

    /**
     * 更新划解分成单据信息
     *
     * @param payDivideVO 划解分成对象
     * @return
     */
    int updateDivideBankAffirm(PayDivideVO payDivideVO);

    NumAmtVO selectDivideNumAmt(@Param("bankid") String bankid, @Param("paybankdt") String paybankdt);

    int deletePaydividefiance(@Param("bankid") String bankid, @Param("paybankdt") String paybankdt, @Param("bankaffirm") String bankaffirm);

    int savePaydividefiance(CheckDataVO checkDataVO);


    //页面
    List<PayDivideVO> findDividePage(PayDivideVO payDivideVO);

    PayDivideVO getDivide(Long payid);

    int saveDivide(PayDivideVO payDivideVO);

    int updateIsBankaffirm(Long payid);

    //柜面
    int updateDivideHxBankaffirm(@Param("dividebillnum") String dividebillnum,@Param("hxbankaffirm") String bankaffirm);

    /**
     * 根据id集合查询票据信息
     * @param billids
     * @return
     */
    List<PayDivideVO> findDivide(long[] billids);
}